]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
screenShield: Drop fallback implementation
authorFlorian Müllner <fmuellner@gnome.org>
Mon, 4 Mar 2013 18:33:36 +0000 (19:33 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Wed, 6 Mar 2013 15:22:07 +0000 (16:22 +0100)
With fallback mode gone, we can no longer rely on gnome-screensaver
being installed. Rather than handling three different cases (GDM,
gnome-screensaver, no lock), disable the lock functionality when
not running under GDM.

https://bugzilla.gnome.org/show_bug.cgi?id=693403

js/ui/main.js
js/ui/screenShield.js
js/ui/userMenu.js

index 229acc466c2194096258d02bdb3555c82cbb4cda..c95be0a5326f515f3852fbaf456c9fe9f84cb503 100644 (file)
@@ -82,7 +82,7 @@ function _sessionUpdated() {
                                   Shell.KeyBindingMode.NORMAL |
                                   Shell.KeyBindingMode.OVERVIEW,
                                   sessionMode.hasRunDialog ? openRunDialog : null);
-    if (sessionMode.isGreeter)
+    if (sessionMode.isGreeter && screenShield)
         screenShield.showDialog();
 }
 
@@ -142,8 +142,6 @@ function startSession() {
     magnifier = new Magnifier.Magnifier();
     if (LoginManager.canLock())
         screenShield = new ScreenShield.ScreenShield();
-    else
-        screenShield = new ScreenShield.ScreenShieldFallback();
 
     panel = new Panel.Panel();
     messageTray = new MessageTray.MessageTray();
index 458081405a2216d720e024cba1ad12076b0e26c9..57d5ac5f2088a4c741922aee23335b7045a6492f 100644 (file)
@@ -1178,62 +1178,3 @@ const ScreenShield = new Lang.Class({
     },
 });
 Signals.addSignalMethods(ScreenShield.prototype);
-
-/* Fallback code to handle session locking using gnome-screensaver,
-   in case the required GDM dependency is not there
-*/
-const ScreenShieldFallback = new Lang.Class({
-    Name: 'ScreenShieldFallback',
-
-    _init: function() {
-        Util.spawn(['gnome-screensaver']);
-
-        this._proxy = new Gio.DBusProxy({ g_connection: Gio.DBus.session,
-                                          g_name: 'org.gnome.ScreenSaver',
-                                          g_object_path: '/org/gnome/ScreenSaver',
-                                          g_interface_name: 'org.gnome.ScreenSaver',
-                                          g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START |
-                                                    Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES),
-                                        });
-        this._proxy.init(null);
-
-        this._proxy.connect('g-signal', Lang.bind(this, this._onSignal));
-        this._proxy.connect('notify::g-name-owner', Lang.bind(this, this._onNameOwnerChanged));
-    },
-
-    _onNameOwnerChanged: function(object, pspec) {
-        if (this._proxy.g_name_owner)
-            [this._locked] = this._proxy.call_sync('GetActive', null,
-                                                   Gio.DBusCallFlags.NONE, -1, null).deep_unpack();
-        else
-            this._locked = false;
-
-        this.emit('active-changed', this._locked);
-    },
-
-    _onSignal: function(proxy, senderName, signalName, params) {
-        if (signalName == 'ActiveChanged') {
-            [this._locked] = params.deep_unpack();
-            this.emit('active-changed', this._locked);
-        }
-    },
-
-    get locked() {
-        return this._locked;
-    },
-
-    lock: function() {
-        this._proxy.call('Lock', null, Gio.DBusCallFlags.NONE, -1, null,
-                         Lang.bind(this, function(proxy, result) {
-                             proxy.call_finish(result);
-
-                             this.emit('lock-screen-shown');
-                         }));
-    },
-
-    unlock: function() {
-        this._proxy.call('SetActive', GLib.Variant.new('(b)', false),
-                         Gio.DBusCallFlags.NONE, -1, null, null);
-    },
-});
-Signals.addSignalMethods(ScreenShieldFallback.prototype);
index d784e75ab663bac1138a10c67d8d19fa7dc9ad70..c6b60a6b2da347fea67e6265c09cd9609ca49c05 100644 (file)
@@ -600,7 +600,8 @@ const UserMenuButton = new Lang.Class({
                                        Lang.bind(this, this._updateHaveShutdown));
 
         Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
-        Main.screenShield.connect('locked-changed', Lang.bind(this, this._updatePresenceIcon));
+        if (Main.screenShield)
+            Main.screenShield.connect('locked-changed', Lang.bind(this, this._updatePresenceIcon));
         this._sessionUpdated();
     },
 
@@ -656,7 +657,7 @@ const UserMenuButton = new Lang.Class({
 
     _updateLockScreen: function() {
         let allowLockScreen = !this._lockdownSettings.get_boolean(DISABLE_LOCK_SCREEN_KEY);
-        this._lockScreenItem.actor.visible = allowLockScreen;
+        this._lockScreenItem.actor.visible = allowLockScreen && LoginManager.canLock();
     },
 
     _updateInstallUpdates: function() {
@@ -864,7 +865,8 @@ const UserMenuButton = new Lang.Class({
     _onLoginScreenActivate: function() {
         this.menu.close(BoxPointer.PopupAnimation.NONE);
         Main.overview.hide();
-        Main.screenShield.lock(false);
+        if (Main.screenShield)
+            Main.screenShield.lock(false);
         Gdm.goto_login_session_sync(null);
     },